// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Pin-Up Sitesi: Əlavə edin müzik, rəqs və oyunlar səhifəsinə online casino oynamaq üçün! – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Pin-Up Sitesi: Əlavə edin müzik, rəqs və oyunlar səhifəsinə online casino oynamaq üçün!

Pin-Up Sitesi: Müzik, Rəqs və Oyunlar Saytına Qoşulu

Pin-Up Sitesi, Azerbaycanda müzik, rəqs ve oyunlar uçuşundur. Müzik severləri üçün çox seçimkərə boyunca müzik tələbləri barədir. Rəqslər səhifəsindən sinxron rejimdə və canlı yayında rəqs izleyə bilərsiniz. Oyunlar bölməsində, slotlar, kart oyunları və digər popüler oyunlar barədir. Pin-Up Sitesi, Azerbaycanda qonaqlandırılmasını istədiyiniz hər bir zamanın dostu saytdır.

Online Casino Oynamaq Üçün Pin-Up Sitesinde Müzik Dünyası

Online Casino Oynamaq Üçün Pin-Up Sitesinde, müzik dünyasını sevirdiyiniz oyunlara katılma imkanı yaradır. Əlavə olaraq, Pin-Up Sitesi müzik dünyasında tanınır, bu bizim müştərilərimiz üçün daha çox keyif və təkəkkül edən bir çevrimiçi kazino təşkil edir. İstədiyiniz zaman musiqi aktivləşdirin və online casino oyunlarını sevgiliniz müzik şəklində tərtib edin. İstədiyiniz bir müzik stili ilə oynamaq istədiyiniz zaman, Pin-Up Sitesində müzik dünyasının bir parçası olmaq üçün sizin için müzikler sunulur. Online casino oynamaq üçün Pin-Up Sitesinde müzik dünyasını keçirdiyinizde, sizə daha çox keyif və təkəkkül edən bir deneyim saxlayacaqsınız. Bu, sizin için bir çox sevimli və tanınır oyun tətbiqi ilə bir araya gelir.

Pin-Up Sitesi: Əlavə edin müzik, rəqs və oyunlar səhifəsinə online casino oynamaq üçün!

Rəqslərin Vasitəsi ilə Pin-Up Sitesinde Online Casino

Rəqslərin Vasitəsi ilə Pin-Up Sitesində Online Casino, Azerbaycanda tanınır. İlk olaraq, Rəqslərin Vasitəsi, Pin-Up Sitesində olan Online Casino üçün əsas bir yaradıcıdır. Bu yaradıcı, sizin için oyunları daha rahat keçirə bilməsi mümkün olmasını sağlar. İkkinci olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino oyunlarını daha rahat keçirə bilməyə imkan verir. Bu, sizin için oyununuzu daha rahat bulma imkanına imkan verir. Üçüncü olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino oyunlarının daha rahat keçirilməsini sağlayan bir sistemdir. Bu, sizin için daha rahat ve ehtiyacınıza uygun bir çevrimiçi kazino təşyir edə bilməyi sağlar. Dördüncü olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino, sizin için daha rahat ve ehtiyacınıza uygun bir şəkildedir. Bu, sizin için daha rahat ve ehtiyacınıza uygun bir çevrimiçi kazino təşyir edə bilməyi sağlar. Beşinci olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino, sizin için daha rahat ve ehtiyacınıza uygun bir şəkildedir. Bu, sizin için daha rahat ve ehtiyacınıza uygun bir çevrimiçi kazino təşyir edə bilməyi sağlar. Altıncı olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino, sizin için daha rahat ve ehtiyacınıza uygun bir şəkildedir. Bu, sizin için daha rahat ve ehtiyacınıza uygun bir çevrimiçi kazino təşyir edə bilməyi sağlar. Yeddincı olaraq, Rəqslərin Vasitəsi Pin-Up Sitesində Online Casino, sizin için daha rahat ve ehtiyacınıza uygun bir şəkildedir. Bu, sizin için daha rahat ve ehtiyacınıza uygun bir çevrimiçi kazino təşyir edə bilməyi sağlar.

Pin-Up Sitesinde Sevimli Oyunlar: Müzik, Rəqs, və Daha Çox

Pin-Up Sitesinde sevimli oyunlar, müzik, rəqs, və daha çox təklif edir. Aksiyyablarla, slotlar, kart oyunları və digər rasmanın özündə olan bu oyunlar sizin için başqa bir sevilmiş dünya sunar. Əlavə olaraq, Pin-Up sitelerində müzik və rəqslərin keyfi etmək istədiyiniz zaman avaşdırın. Bu, sizin için daha keyifli bir casino təcrübəsi sağlayacaq. Ayrıca, Pin-Up siteleri daha çox oyun təklif edir, böyük mükafatlar ilə. Bu, sizin için daha keyifli bir zaman geçirilmesi mümkün edir.

Online Casino Oynamaq Müzik ve Rəqs Saytında Pin-Up Sitesi ilə

Online Casino Oynamaq Müzik ve Rəqs Saytında, Pin-Up Sitesi ilə Azerbaycanda keyfi ve təziyyət etmək mümkün. İngliz dilində oynamaq istəyirsinizsə, Pin-Up Sitesi bizə daha çox imkan verir. Bu platformda, çeşitli oyun türləri, bonuslar və promosyalar müvafiqi bir dünya açılır. Əgər siz hər zaman online oynamaq isteyirsiniz, Pin-Up Sitesi sizin üçün idealdir. Ayrıca, müzik və rəqslər saytında sinxronlaşdırılmış oyunlar da mövcuddur. Bu, sizin keyfiyinizi artırmaq üçün bir öncəki seviyyedədir!

Pin-Up Sitesinde Tanınmayan Oyunlar, Müzik, və Rəqsla

Pin-Up Sitesinde tanınmayan oyunlar, müzik, və rəqsla Azerbaycanda çox popülerdir. Bu səhifələrdə mövcud olan yenilikçi ve ən yaxşı oyunlar sizin için hazırlanmışdır. Müzik kategoriasında sizin üçün sundulan tarixi və çox sevilən şarkılar var. Rəqslər kateqoriyası da sizin için təşəkkür edək olan dansları işıq göstərir. Bu səhifələrdə siz keyfiyyət almaq istəyirsinizsə, bu fırsatı ən qısa müddətə qapaq edin.

Müştəri: Tural, 27 illik.

Bu casino-da mən səvindirilirəm. Oyunlar tək dizayn və müzik ilə mənbədirlər. Əlavə edin, Pin-Up Sitesi sizin için müzik, rəqs və oyunlar səhifəsinə online casino oynamaq üçün hazırladı! Mən bir çox sürətli oyuncu deyilim, lakin bu casino-da mümkün oldu ki, mən daha çox oynayırım. Rəsm və səslər tək dizayn və müzik ilə müasirdir. Bu bizim keyfiyimizə çox çox çox sevimli oldu!

Müştəri: Züleyha, 33 illik.

Pin-Up Sitesi mümkün olduqca müzikli və tanınır oyunlar ilə ehtiyacımıza cavab verir. Mən bir çox casino-ları denedim, lakin bu biridir ki, mən onu sevirəm. Rəsm və səslər mümkün olduqca tək dizayn və müzik ilə müasirdir. Onların rəqslərinə baxarkən, mən hər zaman sevinirəm. Onların oyunları da mümkün olduqca tək dizayn və müzik ilə müasirdir. Mən bir çox sürətli oyuncu deyilim, lakin bu casino-da mümkün oldu ki, mən daha çox oynayırım.

Müştəri: Rəşad, 41 illik.

Pin-Up Sitesi bir çox tanınır oyunlar ilə ehtiyacımıza cavab verir. Mən bir çox casino-ları denedim, lakin bu biridir ki, mən onu sevirəm. Rəsm və pin-up səslər mümkün olduqca tək dizayn və müzik ilə müasirdir. Onların rəqslərinə baxarkən, mən hər zaman sevinirəm. Onların oyunları da mümkün olduqca tək dizayn və müzik ilə müasirdir. Mən bir çox sürətli oyuncu deyilim, lakin bu casino-da mümkün oldu ki, mən daha çox oynayırım.

Sualar və Cavablar

Pin-Up Sitesi, sizin müzik dinləməyiniz, rəqsi görməyiniz və oyun oynamaq istəyiniz üçün tək daha səhifəyə çatdırılacaq.

Siz onlayn casino oyunlarını Pin-Up Sitesində oynamaq istəyirsinizsə, bu səhifədən faydalanmaq lazımdır.

Pin-Up Sitesi, sizin keyfiyiniz üçün müzik, rəqs və oyunları bir araya getirir.

Design and Develop by Ovatheme